Control system for autonomous all-terrain vehicle (ATV)

ABSTRACT

According to one aspect, an autonomous all-terrain vehicle (ATV) may include a controller receiving a command associated with autonomous driving and monitoring components of the autonomous ATV, a location unit determining a current location associated with the autonomous ATV and a destination location associated with the command, a navigation module determining one or more driving parameters based on map data associated with a path from the current location to the destination location, and a safety logic implementing an emergency stop based on an error determined by the controller. The controller may monitor the location unit and the navigation module for the error.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication, Ser. No. 62/613,943 entitled “CONTROL SYSTEM FOR AUTONOMOUSALL-TERRAIN VEHICLE (ATV)”, filed on Jan. 5, 2018; the entirety of theabove-noted application(s) is incorporated by reference herein.

BACKGROUND

An autonomous vehicle is an unmanned vehicle which is generally capableof sensing its environment and navigating without input from a driver.An autonomous vehicle may perform autonomous driving by recognizing anddetermining surrounding environments through various sensors attached tothe autonomous vehicle. Further, an autonomous vehicle may enable adestination to be set and move to the set destination via autonomousdriving.

BRIEF DESCRIPTION

According to one aspect, an autonomous all-terrain vehicle (ATV) mayinclude a controller receiving a command associated with autonomousdriving and monitoring components of the autonomous ATV, a location unitdetermining a current location associated with the autonomous ATV and adestination location associated with the command, a navigation moduledetermining one or more driving parameters based on map data associatedwith a path from the current location to the destination location, and asafety logic implementing an emergency stop based on an error determinedby the controller. The controller may monitor the location unit and thenavigation module for the error.

The location unit may include a global positioning system (GPS) unit andthe error may be a GPS error associated with signal loss or a real timekinematic (RTK) correction error. The autonomous ATV may include asensor module sensing an obstacle along the path to the destinationlocation, and the controller may monitor the sensor module for invalidsensor data as the error. The sensor module may include a lightdetection and ranging (LIDAR) sensor.

The safety logic may cause an interface to render a notification basedon a battery level of the autonomous ATV and a distance of the path fromthe current location to the destination location when the autonomous ATVis an electric vehicle (EV). The safety logic may cause an interface torender a notification based on a fuel level of the autonomous ATV andthe distance of the path from the current location to the destinationlocation when the autonomous ATV is an internal combustion (IC) vehicle.The error may be a field-programmable gate array (FPGA) watchdog timererror. The safety logic may monitor the controller for errors andimplement the emergency stop based on determining an error associatedwith the controller.

The autonomous ATV may include a communications module communicatingwith a remote device and the safety logic may monitor a distance betweenthe remote device and the autonomous ATV and implement the emergencystop based on the distance exceeding an out of range threshold. Theautonomous ATV may include a sensor module sensing a mechanical errorassociated with the autonomous ATV and the controller may monitor thesensor module for the error. The autonomous ATV may include a controllerarea network (CAN) bus communicatively coupling the controller, thelocation unit, and the navigation module and the controller may monitorthe CAN bus for delays in communication or a loss of frames associatedwith communications as the error.

The autonomous ATV may include a communications module receiving the mapdata associated with the path to the destination. The communicationsmodule may transmit the path from the current location to thedestination location as a desired path to a server. The navigationmodule may determine a velocity or a steering angle as one or more ofthe driving parameters. The autonomous ATV may include a sensor modulesensing a vehicle wheel speed of a wheel of the autonomous ATV and thenavigation module may determine one or more of the driving parametersbased on the vehicle wheel speed and the map data.

The autonomous ATV may include a drive controller driving a powersteering system, a throttle control system, or a brake control systembased on one or more of the driving parameters. The autonomous ATV mayinclude a drive motor control system driving a motor controller based onone or more of the driving parameters. The autonomous ATV may be anelectric vehicle (EV).

According to one aspect, an autonomous all-terrain vehicle (ATV) mayinclude a controller receiving a command associated with autonomousdriving and monitoring components of the autonomous ATV, a location unitdetermining a current location associated with the autonomous ATV and adestination location associated with the command, a sensor modulesensing an obstacle along a path to the destination location, anavigation module determining one or more driving parameters based onmap data associated with the path from the current location to thedestination location and the sensed obstacle, and a safety logicimplementing an emergency stop based on an error determined by thecontroller. The controller may monitor the location unit and thenavigation module for the error.

The sensor module may include a light detection and ranging (LIDAR)sensor. The safety logic may causes an interface to render anotification based on a battery level of the autonomous ATV and adistance of the path from the current location to the destinationlocation, when the autonomous ATV is an electric vehicle (EV) or a fuellevel of the autonomous ATV and the distance of the path from thecurrent location to the destination location, when the autonomous ATV isan internal combustion (IC) vehicle.

According to one aspect, a method for controlling an autonomousall-terrain vehicle (ATV) may include receiving a command associatedwith autonomous driving and monitoring components of the autonomous ATV,determining a current location associated with the autonomous ATV and adestination location associated with the command, determining one ormore driving parameters based on map data associated with a path fromthe current location to the destination location, and performing anemergency stop based on an error determined by a controller or a safetylogic of the autonomous ATV.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of an exemplary component diagram of a systemfor operation of an autonomous all-terrain vehicle (ATV), according toone aspect.

FIG. 2 is an illustration of an exemplary component diagram of a systemfor operation of an autonomous all-terrain vehicle (ATV), according toone aspect.

FIG. 3 is an illustration of an exemplary flow diagram of a method foroperation of an autonomous ATV, according to one aspect.

FIG. 4 is an illustration of an exemplary usage scenario for the systemfor operation of the autonomous ATV of FIG. 1 or FIG. 2.

FIG. 5 is an illustration of an exemplary usage scenario for the systemfor operation of the autonomous ATV of FIG. 1 or FIG. 2.

FIG. 6 is an illustration of an example computer-readable medium orcomputer-readable device including processor-executable instructionsconfigured to embody one or more of the provisions set forth herein,according to one aspect.

FIG. 7 is an illustration of an example computing environment where oneor more of the provisions set forth herein are implemented, according toone aspect.

DETAILED DESCRIPTION

The following terms are used throughout the disclosure, the definitionsof which are provided herein to assist in understanding one aspect ofthe disclosure.

“Vehicle”, as used herein, refers to any moving vehicle that is capableof carrying one or more human occupants and is powered by any form ofenergy. In some cases, a motor vehicle includes one or more engines. Theterm “vehicle” may also refer to an autonomous vehicle and/orself-driving vehicle powered by any form of energy. The autonomousvehicle may carry one or more human occupants or other cargo. Further,the term “vehicle” may include vehicles that are automated ornon-automated with pre-determined paths or free-moving vehicles. It willbe appreciated that a vehicle may be an electric vehicle (EV) or aninternal combustion (IC) vehicle with an internal combustion engine.

“Obstacle”, as used herein, refers to any objects in a roadway or alonga path being travelled by the vehicle and may include pedestrians, othervehicles, animals, debris, potholes, etc. Further, an ‘obstacle’ mayinclude most any traffic condition, road condition, weather condition,features of the environment, etc. Examples of obstacles may include, butare not necessarily limited to other vehicles (e.g., obstacle vehicle),buildings, landmarks, obstructions in the roadway, road segments,intersections, etc. Thus, obstacles may be found, detected, orassociated with a path, one or more road segments, etc. along a route onwhich the vehicle is travelling or is projected to travel along.

“Module”, as used herein, includes, but is not limited to, anon-transitory computer readable medium that stores instructions,instructions in execution on a machine, hardware, firmware, software inexecution on a machine, and/or combinations of each to perform afunction(s) or an action(s), and/or to cause a function or action fromanother module, method, and/or system. A module may include logic, asoftware controlled microprocessor, a discrete logic circuit, an analogcircuit, a digital circuit, a programmed logic device, a memory devicecontaining executing or executable instructions, logic gates, acombination of gates, and/or other circuit components, such as themodules, systems, devices, units, or any of the components of FIG. 1.Multiple modules may be combined into one module and single modules maybe distributed among multiple modules.

“Bus”, as used herein, refers to an interconnected architecture that isoperably connected to other computer components inside a computer orbetween computers. The bus may transfer data between the computercomponents. The bus may be a memory bus, a memory processor, aperipheral bus, an external bus, a crossbar switch, and/or a local bus,among others. The bus may also be a vehicle bus that interconnectscomponents inside a vehicle using protocols such as Media OrientedSystems Transport (MOST), Controller Area Network (CAN), LocalInterconnect network (LIN), among others.

“Communication”, as used herein, refers to a communication between twoor more computing devices (e.g., computer, personal digital assistant,cellular telephone, network device) and may be, for example, a networktransfer, a file transfer, an applet transfer, an email, a hypertexttransfer protocol (HTTP) transfer, and so on. A computer communicationmay occur across, for example, a wireless system (e.g., IEEE 802.11), anEthernet system (e.g., IEEE 802.3), a token ring system (e.g., IEEE802.5), a local area network (LAN), a wide area network (WAN), apoint-to-point system, a circuit switching system, a packet switchingsystem, among others.

“Operable connection”, as used herein, or a connection by which entitiesare “operably connected”, is one in which signals, physicalcommunications, and/or logical communications may be sent and/orreceived. An operable connection may include a wireless interface, aphysical interface, a data interface, and/or an electrical interface.For example, one or more of the components of FIG. 1 may be operablyconnected with one another, thereby facilitating communicationtherebetween.

“Mobile device”, as used herein, is a computing device typically havinga display screen with user input (e.g., touch, keyboard) and a processorfor computing. Mobile devices include, but are not limited to, handhelddevices, portable devices, remote devices, smartphones, smartwatches,key fobs, laptops, tablets, and e-readers.

The term “V2X”, as used herein, may be used to describe“vehicle-to-everything” communications, and variations of V2Xdesignations may depend on the intended user that is transmitting DSRCsignals, and “V2V” may be used to describe “vehicle-to-vehicle”communications.

The term “infer” or “inference”, as used herein, generally refers to theprocess of reasoning about or inferring states of a system, a component,an environment, a user from one or more observations captured via eventsor data, etc. Inference may be employed to identify a context or anaction or may be employed to generate a probability distribution overstates, for example. An inference may be probabilistic. For example,computation of a probability distribution over states of interest basedon a consideration of data or events. Inference may also refer totechniques employed for composing higher-level events from a set ofevents or data. Such inference may result in the construction of newevents or new actions from a set of observed events or stored eventdata, whether or not the events are correlated in close temporalproximity, and whether the events and data come from one or severalevent and data sources.

FIG. 1 is an illustration of an exemplary component diagram of a system100 for operation of an autonomous all-terrain vehicle (ATV), accordingto one aspect. The system 100 for operation of an autonomous ATV mayinclude a controller 110 which includes a processor 112 and a memory114, a location unit 120 which includes a global positioning system(GPS) unit 122, a navigation module 130, a safety logic 132, a sensormodule 140 which may include a light detection and ranging (LIDAR)sensor, an image capture device 144, a wheel speed sensor 146, aninterface module 150 which may include a display 152, hardware buttons154 (e.g., an emergency stop button), and/or software buttons 156, acommunications module 160 which may include a dedicated short rangecommunications (DSRC) antenna 162, and a drive controller driving apower steering system 174, a throttle control system 176, or a brakecontrol system 178. A controller area network (CAN) bus 172 maycommunicatively couple one or more of these aforementioned components,thereby enabling communication between the respective components. Statedanother way, the modules and components of FIG. 1 may be operablyconnected and communicate among each other via the CAN bus 172.According to one aspect, the system 100 for operation of an autonomousATV may be implemented as a part of an internal combustion (IC)autonomous ATV.

FIG. 2 is an illustration of an exemplary component diagram of a system100 for operation of an autonomous all-terrain vehicle (ATV), accordingto one aspect. The system 200 of FIG. 2 is similar to the system 100 ofFIG. 1, except that the system 200 of FIG. 2 is for an electric vehicle(EV) version of the autonomous ATV, which may include a drive motorcontrol system 270 driving a motor controller 272 rather than the drivecontroller 170 of the system 100 of FIG. 1. Although one or more of thecomponents may be described with respect to the system 100 for operationof an autonomous ATV of FIG. 1, it will be appreciated that thecorresponding components of FIG. 2 may be configured and/or performsimilar functions and concepts or features associated with the EV may beapplied to the IC autonomous ATV of FIG. 1 and vice versa.

In any event, regardless of whether the autonomous ATV is an EV or ICversion of the ATV, the controller 110 may receive one or more commandsassociated with autonomous driving of the vehicle. These commands may beinitiated, for example, at the interface module 150 via one or more ofthe hardware buttons 154 or one or more of the software buttons 156, orvia a remote device, such as a remote control for the autonomous ATV.

The location unit 120 may include the GPS unit 122 and determine acurrent location associated with the autonomous ATV, as well as adestination location associated with the command for autonomous driving.In this way, the location unit 120 may receive a GPS location associatedwith the autonomous ATV, such as by locating the autonomous ATV usingsatellites, thereby providing a precise set of geographical coordinatesassociated with the autonomous ATV.

The communications module 160 may receive information from one or moresources, such as, for example, other vehicles 182, a server 184, or theremote device 186. Examples of information which may be received includemap data associated with a current path, such as the path from thecurrent location of the autonomous ATV to the destination location.

The navigation module 130 may determine a route, based on mapinformation from the communications module 160 or stored locally on thememory 114 of the autonomous ATV, from the current location of theautonomous ATV to the destination location. According to one aspect, thenavigation module 130 may determine the route based on obstaclesdetected by the sensor module 140. In other words, the navigation module130 may identify a potential path in the operating environment throughwhich the autonomous ATV may pass. The navigation module 130 may alsopresent information to a driver or occupant of the autonomous ATV viathe interface to show progress of a trip.

The sensor module 140 may include different types of sensors, such as aLight Detection and Ranging (LIDAR) sensor 142, the image capture device144, a radar sensor, etc. In this way, the LIDAR sensor 142 may be alight based sensor which facilitates object detection or environmentdetection. Regardless, the sensor module 140 may sense or detect anobstacle around the autonomous ATV. If the sensor module 140 detects anobstacle which is obstructing a path associated with the autonomous ATV,the navigation module 130 may, in response, modify a route or currentroute of the autonomous ATV to navigate around the detected obstacle,thereby enabling the sensor module 140 to identify potential paths froma current location associated with the autonomous ATV to a currentlocation of the leader or leader device.

For example, when the sensor module 140 detects an obstacle, thenavigation module 130 may make a determination as to whether a routechange or an alternative route should be considered. The navigationmodule 130 may make this determination based on a size of the obstacle,topology of alternative routes, a state of the surrounding environment,etc. For example, if ground conditions are muddy, rainy, slick, icy,snowy, dry, etc. the navigation module 130 may recommend or determinethe alternative route accordingly.

In other words, when the sensor module 140 detects the obstacle in anoperating environment through which the autonomous ATV is travelling,the navigation module 130 determines whether the obstacle impedes acurrent route of the autonomous ATV. Stated another way, the navigationmodule 130 may determine an alternative current route for the autonomousATV based on the current route, whether the obstacle impedes the currentroute of the autonomous ATV, and a feature of the operating environment(e.g., topology, whether the terrain is passable, weather, groundconditions, ice thickness associated with a body of water, difficultyassociated with an alternative route, etc.).

Additionally, the navigation module 130 may determine one or moredriving parameters to be implemented by one or more components of theautonomous ATV during autonomous travel. For example, the navigationmodule 130 may determine one or more driving parameters based on mapdata and/or sensed obstacles associated with the path from the currentlocation to the destination location. Examples of driving parametersassociated with vehicle components include coordinate information,velocity, acceleration, trajectory, yaw rate, steering angle, throttleangle, etc. If the terrain surround the autonomous ATV is steep, thenavigation module 130 may decrease a gear of the vehicle and/ordetermine a lower velocity than if the terrain were flat.

The sensor module 140 may include the wheel speed sensor 146 detectingan angular velocity of a wheel of the autonomous ATV. As such, thenavigation module 130 may determine one or more of the drivingparameters based on the vehicle wheel speed and the map data. Forexample, a lookup table may be provided on the server 184 based on anincline angle, temperature, humidity, road surface conditions, terraintype (e.g., rock, gravel, grass, mud, snow, ice), etc. to determine oneor more of the corresponding driving parameters.

According to one or more aspects, the safety logic 132 may implement anemergency stop based on an error determined by the controller 110 or anerror determined by the safety logic 132. In other words, the controller110 may monitor the location unit 120, the navigation module 130, thesensor module 140, the interface module 150, the communications module160, the drive controller 170, or the CAN bus 172 for the error.Examples of errors determined by the controller 110 may include a GPSerror associated with signal loss or a real time kinematic (RTK)correction error, invalid sensor data from the sensor module 140, afield-programmable gate array (FPGA) watchdog timer error, mechanicalerrors sensed by the sensor module 140 (e.g., errors associated with thebrake control system 178, the power steering system 174, and thethrottle control system 176, etc.). According to one aspect, the sensormodule 140 may include the wheel speed sensor 146, which detects anangular velocity of a wheel of the autonomous ATV. In this regard, thesafety logic 132 may determine or implement the emergency stop based onthe wheel speed sensor data.

Other errors may include a CAN bus error, such as a delay incommunication between one or more of the components of FIG. 1 or a lossof frames, for example.

Further, the safety logic 132 may monitor the controller 110 for errorsassociated with the controller 110. In this way, even if the controller110 were to malfunction, another component of the autonomous ATV maydetect such an error. Thus, if the safety logic 132 detects an errorassociated with the controller 110, the safety logic 132 would, inresponse to this error, implement the emergency stop based on thedetermined error associated with the controller 110 and based on themaps information and surrounding terrain. For example, in a hillyenvironment, the safety logic 132 may implement the emergency stop as agradual increasing application of the brakes, rather than as a suddenstop, which may be implemented if the sensor module 140 detects a suddenobstacle, such as a pedestrian moving in front of the autonomous ATV.

Additionally, the safety logic 132 may causes the interface to render,on the display 152 of the autonomous ATV or on a display of the remotedevice 186, a notification based on a battery level of the autonomousATV and a distance of the path from the current location to thedestination location. In other words, if the autonomous ATV is an EV,and the battery level of the autonomous ATV is below a threshold levelassociated with a round trip (e.g., due to the distance of the roundtrip, due the terrain associated with the round trip, such as hills,inclines, surface conditions, etc.), the safety logic 132 may cause theinterface to render a corresponding warning. In some scenarios, otherfactors may be considered, such as peak output of the battery (e.g., theEV autonomous ATV may not be able to make it up an incline at x distanceat a battery level while being able to traverse x distance on a flatpath due to the current being drawn). Similarly, if the if theautonomous ATV is an internal combustion (IC) vehicle, and a fuel levelof the autonomous ATV is below a threshold level associated with a roundtrip (e.g., taking into account the terrain associated with the roundtrip, such as hills, inclines, surface conditions, etc.), the safetylogic 132 may cause the interface to render a corresponding warning.

As another example, if the autonomous ATV is being controlled by theremote device 186 (e.g., the remote device is being used as a remotecontrol to transmit autonomous driving commands to the autonomous ATVvia the communications module 160), the safety logic 132 may monitor adistance between the remote device 186 and the autonomous ATV. When thedistance between the remote device 186 and the autonomous ATV increasespast an out of range threshold distance, the safety logic 132 may causethe interface to render an out of range warning or the safety logic 132may implement the emergency stop. According to one aspect, the out ofrange warning may be provided at a first out of range threshold distanceand the emergency stop may be applied at a second out of range thresholddistance, where the second out of range threshold distance is greaterthan the first out of range threshold distance.

The sensor module 140 may sense an obstacle along the path from thecurrent location of the autonomous ATV to the destination location.Further, the sensor module 140 may sense errors associated with one ormore autonomous ATV vehicle components, including but not limited to thebrake control system 178, the power steering system 174, and thethrottle control system 176, for example.

The interface module 150 may render information associated with a path,route, or trip for a passenger, driver, or occupant of the autonomousATV, such as via the display 152. The interface module 150 may alsoinclude a touch screen interface, for example. Additionally, when abutton is pressed, the interface module 150 may transmit a correspondingcommand, via the CAN bus 172, to the controller 110 of the autonomousATV. In this regard, the controller 110 may receive the correspondingcommand from the interface module 150 and facilitate execution of thatcommand (e.g., drive autonomously to a ‘home’ location).

The communications module 160 may facilitate V2V and/or V2Xcommunications. The communications module 160 may include the DSRCmodule 162, an antenna, a receiver, a transmitter, and/or a transceiver.The communications module 160 may receive information from externalsources, such as another vehicle 182 (e.g., thereby facilitating V2Vcommunications), a server 184 (e.g., thereby facilitating V2Xcommunications), a remote device 186, etc. For example, thecommunications module 160 may receive obstacle or environmentinformation associated with the operating environment from the othervehicle or map information from the server 184. In this way, thecommunications module 160 may receive a variety of information fromdifferent sources. For example, the communications module 160 maytransmit a path from the current location to the destination location asa desired path to the server 184.

The drive controller 170 or the drive motor control system 270 maycontrol aspects of autonomous driving by implemented one or more ofdriving parameters. For example, the drive controller 170 may drive thepower steering system 174, the throttle control system 176, or the brakecontrol system 178, while the drive motor control system may drive themotor controller 272, thereby implementing the driving parameters as anoperating action or autonomous driving action.

FIG. 3 is an illustration of an exemplary flow diagram of a method foroperation of an autonomous ATV, according to one aspect. At 302, theautonomous ATV may be started. At 304, system initialization may occur,including initialization of the controller 110, the CAN bus 172, and/orone or more other components. At 306, one or more failures may bechecked. An example of the failure check may include a check for one ormore mechanical failures or mechanical errors. In other words, thecontroller 110 or the safety logic 132 may determine whether anymechanical errors are present at 306. If no errors are detected at 306,the autonomous ATV may run initialization commands at 308. At 310, thecontroller 110 may monitor the CAN for errors. At 312, the controller110 may determine whether a CAN failure or error is detected. If no CANerror is detected at 312, the system may enter manual mode or autonomousmode at 314.

In autonomous mode, the autonomous ATV may receive inputs from theautonomous control system (e.g., the controller 110, navigation module130, sensor module 140, etc.) at 316. In other words, one or moredriving parameters may be determined based on map data associated with apath from a current location to a destination location.

At 318, other system inputs may be monitored, such as the vehicle wheelspeed. In response, the navigation module 130 may determine one or moredriving parameters and provide these as commands to the motor controllerat 332 or as commands to the throttle, brake, motor controller and thedrive motor controller at 334. At 336, the ATV may be stopped in anormal fashion (e.g., key stop) and shut down 338. In manual mode,inputs may be received from the remote control at 320. If errors aredetected, at 306 or 312, an emergency stop may be implemented at 330,and thus an emergency stop may be performed based on an error determinedby a controller 110 or a safety logic 132 of the autonomous ATV.

FIG. 4 is an illustration of an exemplary usage scenario for the systemfor operation of the autonomous ATV of FIG. 1 or FIG. 2. In FIG. 4, anautonomous ATV may travel from a current location 410 autonomously alongpath 412, from 410 to 420, to 430 to 440 (following 412′, 412″, 412′″,412″″), which may be waypoints set by the navigation module 130 inassociation with determination of the route from the current location tothe destination location. At 450, an emergency stop may be performed orimplemented by the safety logic 132 based on one or more of theaforementioned errors, such as a GPS error associated with signal lossor a real time kinematic (RTK) correction error, invalid sensor datafrom the sensor module 140, a FPGA watchdog timer error, or a mechanicalerror.

FIG. 5 is an illustration of an exemplary usage scenario for the systemfor operation of the autonomous ATV of FIG. 1 or FIG. 2. In FIG. 5, theautonomous ATV may utilize the LIDAR sensor 142 and/or maps informationreceived from the server 184 to determine a path from the start location510 to the home location 520 to facilitate a drive ‘home’ autonomousoperation. Based on the maps information, a first route 530 may bedetermined or a second route 550 may be determined. The first route 530is more on road, although an obstacle 560 (e.g., a downed tree) maycause the navigation module 130 to determine an alternative slightlyoff-road travel segment at 560 to mitigate a collision with the obstacle560. Based on maps information, weather information received via thecommunications module 160, (e.g., whether the creek is frozen over orthe depth of the water if not frozen) the navigation module 130 maydetermine that the second route 550 as the selected route. In this way,control of the autonomous ATV may be provided.

Still another aspect involves a computer-readable medium includingprocessor-executable instructions configured to implement one aspect ofthe techniques presented herein. An embodiment of a computer-readablemedium or a computer-readable device devised in these ways isillustrated in FIG. 6, wherein an implementation 600 includes acomputer-readable medium 608, such as a CD-R, DVD-R, flash drive, aplatter of a hard disk drive, etc., on which is encodedcomputer-readable data 606. This encoded computer-readable data 606,such as binary data including a plurality of zero's and one's as shownin 606, in turn includes a set of processor-executable computerinstructions 604 configured to operate according to one or more of theprinciples set forth herein. In one such aspect 600, theprocessor-executable computer instructions 604 may be configured toperform a method 602, such as the method 300 of FIG. 3. In anotheraspect, the processor-executable computer instructions 604 may beconfigured to implement a system, such as the system 100 of FIG. 1 orthe system 200 of FIG. 2. Many such computer-readable media may bedevised by those of ordinary skill in the art that are configured tooperate in accordance with the techniques presented herein.

As used in this application, the terms “component”, “module”, “system”,“interface”, and the like are generally intended to refer to acomputer-related entity, either hardware, a combination of hardware andsoftware, software, or software in execution. For example, a componentmay be, but is not limited to being, a process running on a processor, aprocessor, an object, an executable, a thread of execution, a program,or a computer. By way of illustration, both an application running on acontroller and the controller may be a component. One or more componentsresiding within a process or thread of execution and a component may belocalized on one computer or distributed between two or more computers.

Further, the claimed subject matter is implemented as a method,apparatus, or article of manufacture using standard programming orengineering techniques to produce software, firmware, hardware, or anycombination thereof to control a computer to implement the disclosedsubject matter. The term “article of manufacture” as used herein isintended to encompass a computer program accessible from anycomputer-readable device, carrier, or media. Of course, manymodifications may be made to this configuration without departing fromthe scope or spirit of the claimed subject matter.

FIG. 7 and the following discussion provide a description of a suitablecomputing environment to implement embodiments of one or more of theprovisions set forth herein. The operating environment of FIG. 7 ismerely one example of a suitable operating environment and is notintended to suggest any limitation as to the scope of use orfunctionality of the operating environment. Example computing devicesinclude, but are not limited to, personal computers, server computers,handheld or laptop devices, mobile devices, such as mobile phones,Personal Digital Assistants (PDAs), media players, and the like,multiprocessor systems, consumer electronics, mini computers, mainframecomputers, distributed computing environments that include any of theabove systems or devices, etc.

Generally, embodiments are described in the general context of “computerreadable instructions” being executed by one or more computing devices.Computer readable instructions may be distributed via computer readablemedia as will be discussed below. Computer readable instructions may beimplemented as program modules, such as functions, objects, ApplicationProgramming Interfaces (APIs), data structures, and the like, thatperform one or more tasks or implement one or more abstract data types.Typically, the functionality of the computer readable instructions arecombined or distributed as desired in various environments.

FIG. 7 illustrates a system 700 including a computing device 712configured to implement one aspect provided herein. In oneconfiguration, computing device 712 includes at least one processingunit 716 and memory 718. Depending on the exact configuration and typeof computing device, memory 718 may be volatile, such as RAM,non-volatile, such as ROM, flash memory, etc., or a combination of thetwo. This configuration is illustrated in FIG. 7 by dashed line 714.

In other embodiments, computing device 712 includes additional featuresor functionality. For example, computing device 712 may includeadditional storage such as removable storage or non-removable storage,including, but not limited to, magnetic storage, optical storage, etc.Such additional storage is illustrated in FIG. 7 by storage 720. In oneaspect, computer readable instructions to implement one aspect providedherein are in storage 720. Storage 720 may store other computer readableinstructions to implement an operating system, an application program,etc. Computer readable instructions may be loaded in memory 718 forexecution by processing unit 716, for example.

The term “computer readable media” as used herein includes computerstorage media. Computer storage media includes volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions or other data. Memory 718 and storage 720 are examples ofcomputer storage media. Computer storage media includes, but is notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, Digital Versatile Disks (DVDs) or other optical storage,magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or any other medium which may be used to storethe desired information and which may be accessed by computing device712. Any such computer storage media is part of computing device 712.

The term “computer readable media” includes communication media.Communication media typically embodies computer readable instructions orother data in a “modulated data signal” such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” includes a signal that has one or more ofits characteristics set or changed in such a manner as to encodeinformation in the signal.

Computing device 712 includes input device(s) 724 such as keyboard,mouse, pen, voice input device, touch input device, infrared cameras,video input devices, or any other input device. Output device(s) 722such as one or more displays, speakers, printers, or any other outputdevice may be included with computing device 712. Input device(s) 724and output device(s) 722 may be connected to computing device 712 via awired connection, wireless connection, or any combination thereof. Inone aspect, an input device or an output device from another computingdevice may be used as input device(s) 724 or output device(s) 722 forcomputing device 712. Computing device 712 may include communicationconnection(s) 726 to facilitate communications with one or more otherdevices 730, such as through network 728, for example.

Although the subject matter has been described in language specific tostructural features or methodological acts, it is to be understood thatthe subject matter of the appended claims is not necessarily limited tothe specific features or acts described above. Rather, the specificfeatures and acts described above are disclosed as example embodiments.

Various operations of embodiments are provided herein. The order inwhich one or more or all of the operations are described should not beconstrued as to imply that these operations are necessarily orderdependent. Alternative ordering will be appreciated based on thisdescription. Further, not all operations may necessarily be present ineach embodiment provided herein.

As used in this application, “or” is intended to mean an inclusive “or”rather than an exclusive “or”. Further, an inclusive “or” may includeany combination thereof (e.g., A, B, or any combination thereof). Inaddition, “a” and “an” as used in this application are generallyconstrued to mean “one or more” unless specified otherwise or clear fromcontext to be directed to a singular form. Additionally, at least one ofA and B and/or the like generally means A or B or both A and B. Further,to the extent that “includes”, “having”, “has”, “with”, or variantsthereof are used in either the detailed description or the claims, suchterms are intended to be inclusive in a manner similar to the term“comprising”.

Further, unless specified otherwise, “first”, “second”, or the like arenot intended to imply a temporal aspect, a spatial aspect, an ordering,etc. Rather, such terms are merely used as identifiers, names, etc. forfeatures, elements, items, etc. For example, a first channel and asecond channel generally correspond to channel A and channel B or twodifferent or two identical channels or the same channel. Additionally,“comprising”, “comprises”, “including”, “includes”, or the likegenerally means comprising or including, but not limited to.

It will be appreciated that various of the above-disclosed and otherfeatures and functions, or alternatives or varieties thereof, may bedesirably combined into many other different systems or applications.Also that various presently unforeseen or unanticipated alternatives,modifications, variations or improvements therein may be subsequentlymade by those skilled in the art which are also intended to beencompassed by the following claims.

The invention claimed is:
 1. An autonomous all-terrain vehicle (ATV),comprising: a controller receiving a command associated with autonomousdriving and monitoring components of the autonomous ATV; a locationunit, implemented as a global positioning system (GPS) device,determining a current location associated with the autonomous ATV and adestination location associated with the command; a navigation module,implemented via a processor and a memory, determining one or moredriving parameters based on map data associated with a path from thecurrent location to the destination location; and a safety logicimplementing an emergency stop based on an error determined by thecontroller and based on a battery level of the autonomous ATV, whereinthe controller monitors the location unit and the navigation module forthe error.
 2. The autonomous ATV of claim 1, wherein the location unitincludes a global positioning system (GPS) unit and wherein the error isa GPS error associated with signal loss or a real time kinematic (RTK)correction error.
 3. The autonomous ATV of claim 1, comprising a sensormodule sensing an obstacle along the path to the destination location,and wherein the controller monitors the sensor module for invalid sensordata as the error.
 4. The autonomous ATV of claim 3, wherein the sensormodule includes a light detection and ranging (LIDAR) sensor.
 5. Theautonomous ATV of claim 1, wherein the safety logic causes an interfaceto render a notification based on: the battery level of the autonomousATV and a distance of the path from the current location to thedestination location, wherein the autonomous ATV is an electric vehicle(EV); or a fuel level of the autonomous ATV and the distance of the pathfrom the current location to the destination location, wherein theautonomous ATV is an internal combustion (IC) vehicle.
 6. The autonomousATV of claim 1, wherein the error is a field-programmable gate array(FPGA) watchdog timer error.
 7. The autonomous ATV of claim 1, whereinthe safety logic monitors the controller for errors and implements theemergency stop based on determining an error associated with thecontroller.
 8. The autonomous ATV of claim 1, comprising acommunications module communicating with a remote device, wherein thesafety logic monitors a distance between the remote device and theautonomous ATV and implements the emergency stop based on the distanceexceeding an out of range threshold.
 9. The autonomous ATV of claim 1,comprising a sensor module sensing a mechanical error associated withthe autonomous ATV, and wherein the controller monitors the sensormodule for the error.
 10. The autonomous ATV of claim 1, comprising acontroller area network (CAN) bus communicatively coupling thecontroller, the location unit, and the navigation module, wherein thecontroller monitors the CAN bus for delays in communication or a loss offrames associated with communications as the error.
 11. The autonomousATV of claim 1, comprising a communications module receiving the mapdata associated with the path to the destination.
 12. The autonomous ATVof claim 11, wherein the communications module transmits the path fromthe current location to the destination location as a desired path to aserver.
 13. The autonomous ATV of claim 1, wherein the navigation moduledetermines a velocity or a steering angle as one or more of the drivingparameters.
 14. The autonomous ATV of claim 1, comprising a sensormodule sensing a vehicle wheel speed of a wheel of the autonomous ATV,wherein the navigation module determines one or more of the drivingparameters based on the vehicle wheel speed and the map data.
 15. Theautonomous ATV of claim 1, comprising a drive controller driving a powersteering system, a throttle control system, or a brake control systembased on one or more of the driving parameters.
 16. The autonomous ATVof claim 1, comprising a drive motor control system driving a motorcontroller based on one or more of the driving parameters, wherein theautonomous ATV is an electric vehicle (EV).
 17. An autonomousall-terrain vehicle (ATV), comprising: a controller receiving a commandassociated with autonomous driving and monitoring components of theautonomous ATV; a location unit, implemented as a global positioningsystem (GPS) device, determining a current location associated with theautonomous ATV and a destination location associated with the command; asensor module sensing an obstacle along a path to the destinationlocation; a navigation module, implemented via a processor and a memory,determining one or more driving parameters based on map data associatedwith the path from the current location to the destination location andthe sensed obstacle; and a safety logic implementing an emergency stopbased on an error determined by the controller and based on a batterylevel of the autonomous ATV, wherein the controller monitors thelocation unit and the navigation module for the error.
 18. Theautonomous ATV of claim 17, wherein the sensor module includes a lightdetection and ranging (LIDAR) sensor.
 19. The autonomous ATV of claim17, wherein the safety logic causes an interface to render anotification based on: the battery level of the autonomous ATV and adistance of the path from the current location to the destinationlocation, wherein the autonomous ATV is an electric vehicle (EV); or afuel level of the autonomous ATV and the distance of the path from thecurrent location to the destination location, wherein the autonomous ATVis an internal combustion (IC) vehicle.
 20. A system, comprising: acontroller receiving a command associated with autonomous driving andmonitoring components of an autonomous all-terrain vehicle (ATV), thecontroller located within the autonomous ATV; a location unit,implemented as a global positioning system (GPS) device, determining acurrent location associated with the autonomous ATV and a destinationlocation associated with the command; a navigation module, implementedvia a processor and a memory, determining one or more driving parametersbased on map data associated with a path from the current location tothe destination location; and a safety logic implementing an emergencystop based on an error determined by the controller and based on abattery level of the autonomous ATV, wherein the controller monitors thelocation unit and the navigation module for the error.